import request from '@/utils/request'

/**
 * 书籍基础操作接口
 */

// 获取书籍列表
export function getBookList(params) {
  return request({
    url: '/books/list',
    method: 'get',
    params
  })
} 

// 创建新书籍
// @param {Object} data - 书籍信息
// @param {string} data.title - 书籍标题
// @param {string} data.author - 作者
// @param {string} data.thoughts - 读后感
// @param {string} data.tags - 标签
// @param {string} data.cover_image - 封面图片
// @param {string} data.images - 其他图片
// @param {string} data.reading_url - 阅读链接
// @return {Promise} 返回新创建的书籍ID
export const createBook = (data) => {
  return request({
    url: '/books',
    method: 'post',
    data
  })
}

// 获取我的书籍列表
// @return {Promise} 返回当前用户的书籍列表
export const getMyBooks = () => {
  return request({
    url: '/books/me/books',
    method: 'get'
  })
}

// 获取我喜欢的书籍列表
// @return {Promise} 返回当前用户喜欢的书籍列表
export const getLikedBooks = () => {
  return request({
    url: '/books/me/likes',
    method: 'get'
  })
}

// 获取书籍详情
// @param {number} id - 书籍ID
// @param {number} userId - 用户ID，用于获取点赞状态
// @return {Promise} 返回书籍详细信息
export const getBookById = (id, userId = null) => {
  return request({
    url: `/books/${id}`,
    method: 'get',
    params: { userId }  // 添加 userId 参数
  })
}

// 更新书籍信息
// @param {number} id - 书籍ID
// @param {Object} data - 更新的书籍信息
// @return {Promise} 返回更新结果
export const updateBook = (id, data) => {
  return request({
    url: `/books/${id}`,
    method: 'put',
    data
  })
}

// 删除书籍
// @param {number} id - 书籍ID
// @return {Promise} 返回删除结果
export const deleteBook = (bookId) => {
  return request({
    url: `/books/admin/${bookId}`,
    method: 'delete'
  })
}

// 上架书籍
export const publishBook = (bookId) => {
  return request({
    url: `/books/admin/${bookId}/publish`,
    method: 'put'
  })
}

// 下架书籍
export const unpublishBook = (bookId) => {
  return request({
    url: `/books/admin/${bookId}/unpublish`,
    method: 'put'
  })
}

/**
 * 评论相关接口
 */

// 获取书籍评论列表
// @param {number} bookId - 书籍ID
// @param {number} userId - 用户ID，用于获取点赞状态
// @return {Promise} 返回评论列表
export const getComments = (bookId, userId = null) => {
  return request({
    url: `/books/${bookId}/comments`,
    method: 'get',
    params: { userId }
  })
}

// 添加评论
// @param {number} bookId - 书籍ID
// @param {Object} data - 评论信息
// @param {string} data.content - 评论内容
// @return {Promise} 返回新创建的评论ID
export const addComment = (bookId, data) => {
  return request({
    url: `/books/${bookId}/comments`,
    method: 'post',
    data
  })
}

// 删除评论
export const deleteComment = (bookId, commentId) => {
  return request({
    url: `/books/${bookId}/comments/${commentId}`,
    method: 'delete'
  })
}

/**
 * 点赞相关接口
 */

// 点赞书籍
// @param {number} bookId - 书籍ID
// @return {Promise} 返回点赞结果
export const likeBook = (bookId) => {
  return request({
    url: `/books/${bookId}/likes`,
    method: 'post'
  })
}

// 取消点赞
// @param {number} bookId - 书籍ID
// @return {Promise} 返回取消点赞结果
export const unlikeBook = (bookId) => {
  return request({
    url: `/books/${bookId}/likes`,
    method: 'delete'
  })
}

/**
 * 评分相关接口
 */

// 给书籍评分
// @param {number} bookId - 书籍ID
// @param {Object} data - 评分信息
// @param {number} data.score - 分数(1-5)
// @return {Promise} 返回评分结果
export const rateBook = (bookId, data) => {
  return request({
    url: `/books/${bookId}/ratings`,
    method: 'post',
    data
  })
}

// 点赞评论
export const likeComment = (bookId, commentId) => {
  return request({
    url: `/books/${bookId}/comments/${commentId}/likes`,
    method: 'post'
  })
}

// 取消点赞评论
export const unlikeComment = (bookId, commentId) => {
  return request({
    url: `/books/${bookId}/comments/${commentId}/likes`,
    method: 'delete'
  })
}




